# imm_op
slti  $r4,$r5,0
slti  $r4,$r5,0x7ff
slti  $r4,$r5,-0x7ff
sltui  $r4,$r5,0
sltui  $r4,$r5,0x7ff
sltui  $r4,$r5,-0x7ff
addi.w  $r4,$r5,0
addi.w  $r4,$r5,0x7ff
addi.w  $r4,$r5,-0x7ff
addi.d  $r4,$r5,0
addi.d  $r4,$r5,0x7ff
addi.d  $r4,$r5,-0x7ff
lu52i.d  $r4,$r5,0
lu52i.d  $r4,$r5,0x7ff
lu52i.d  $r4,$r5,-0x7ff
andi  $r4,$r5,0
andi  $r4,$r5,0x7ff
ori  $r4,$r5,0
ori  $r4,$r5,0x7ff
xori  $r4,$r5,0
xori  $r4,$r5,0x7ff
addu16i.d  $r4,$r5,0
addu16i.d  $r4,$r5,0x7fff
addu16i.d  $r4,$r5,-0x7fff
lu12i.w  $r4,0
lu12i.w  $r4,0x7ffff
lu32i.d  $r4,-0x7ffff
pcaddi  $r4,0
pcaddi  $r4,0x7ffff
pcaddi  $r4,-0x80000
pcalau12i  $r4,0
pcalau12i  $r4,0x7ffff
pcalau12i  $r4,-0x7ffff
pcaddu12i  $r4,0
pcaddu12i  $r4,0x7ffff
pcaddu12i  $r4,-0x7ffff
pcaddu18i  $r4,0
pcaddu18i  $r4,0x7ffff
pcaddu18i  $r4,-0x7ffff

# imm_ins
.equ a, 0x123
.equ b, 0xfffff00000
.equ c, 0xfffffffffff
.equ d, 2
.equ e,0x100

alsl.w $r11,$r12,$r13,d
alsl.wu $r11,$r12,$r13,d
bytepick.w $r11,$r12,$r13,d
bytepick.d $r11,$r12,$r13,d

break d
dbcl d
syscall d

alsl.d $r11,$r12, $r13,d
slli.w $r11,$r12,d
slli.d $r11,$r12,d
srli.w $r11,$r12,d
srli.d $r12,$r13,d
srai.w $r12,$r13,d
srai.d $r12,$r13,d

bstrins.w $r12,$r13,d,d
bstrins.d $r12,$r13,d,d
bstrpick.d $r12,$r13,d,d
bstrpick.d $r12,$r13,d,d

slti $r12,$r13,a
sltui $r12,$r13,a
addi.w $r12,$r13,a
addi.d $r12,$r13,a
lu52i.d $r12,$r13,a
andi $r12,$r13,d
ori  $r12,$r13,d
xori $r12,$r13,d
addu16i.d $r12,$r13,d
lu12i.w $r12,a
lu32i.d $r12,a
pcaddi $r12,a
pcalau12i $r12,a
pcaddu12i $r12,a
pcaddu18i $r12,a

csrrd $r12,a
csrwr $r12,a
csrxchg $r12,$r13,d
cacop d,$r13,d
lddir $r12,$r13,d
ldpte $r12,d

invtlb d,$r13,$r14

# fix_op
clo.w  $r4,$r5
clz.w  $r4,$r5
cto.w  $r4,$r5
ctz.w  $r4,$r5
clo.d  $r4,$r5
clz.d  $r4,$r5
cto.d  $r4,$r5
ctz.d  $r4,$r5
revb.2h  $r4,$r5
revb.4h  $r4,$r5
revb.2w  $r4,$r5
revb.d  $r4,$r5
revh.2w  $r4,$r5
revh.d  $r4,$r5
bitrev.4b  $r4,$r5
bitrev.8b  $r4,$r5
bitrev.w  $r4,$r5
bitrev.d  $r4,$r5
ext.w.h  $r4,$r5
ext.w.b  $r4,$r5
rdtimel.w  $r4,$r5
rdtimeh.w  $r4,$r5
rdtime.d  $r4,$r5
cpucfg  $r4,$r5
asrtle.d  $r5,$r6
asrtgt.d  $r5,$r6
alsl.w  $r4,$r5,$r6,1
alsl.w  $r4,$r5,$r6,4
alsl.wu  $r4,$r5,$r6,1
alsl.wu  $r4,$r5,$r6,4
bytepick.w  $r4,$r5,$r6,0
bytepick.w  $r4,$r5,$r6,3
bytepick.d  $r4,$r5,$r6,0
bytepick.d  $r4,$r5,$r6,7
add.w  $r4,$r5,$r6
add.d  $r4,$r5,$r6
sub.w  $r4,$r5,$r6
sub.d  $r4,$r5,$r6
slt  $r4,$r5,$r6
sltu  $r4,$r5,$r6
maskeqz  $r4,$r5,$r6
masknez  $r4,$r5,$r6
nor  $r4,$r5,$r6
and  $r4,$r5,$r6
or  $r4,$r5,$r6
xor  $r4,$r5,$r6
orn  $r4,$r5,$r6
andn  $r4,$r5,$r6

# load_store
sll.w  $r4,$r5,$r6
srl.w  $r4,$r5,$r6
sra.w  $r4,$r5,$r6
sll.d  $r4,$r5,$r6
srl.d  $r4,$r5,$r6
sra.d  $r4,$r5,$r6
rotr.w  $r4,$r5,$r6
rotr.d  $r4,$r5,$r6
mul.w  $r4,$r5,$r6
mulh.w  $r4,$r5,$r6
mulh.wu  $r4,$r5,$r6
mul.d  $r4,$r5,$r6
mulh.d  $r4,$r5,$r6
mulh.du  $r4,$r5,$r6
mulw.d.w  $r4,$r5,$r6
mulw.d.wu  $r4,$r5,$r6
div.w  $r4,$r5,$r6
mod.w  $r4,$r5,$r6
div.wu  $r4,$r5,$r6
mod.wu  $r4,$r5,$r6
div.d  $r4,$r5,$r6
mod.d  $r4,$r5,$r6
div.du  $r4,$r5,$r6
mod.du  $r4,$r5,$r6
crc.w.b.w  $r4,$r5,$r6
crc.w.h.w  $r4,$r5,$r6
crc.w.w.w  $r4,$r5,$r6
crc.w.d.w  $r4,$r5,$r6
crcc.w.b.w  $r4,$r5,$r6
crcc.w.h.w  $r4,$r5,$r6
crcc.w.w.w  $r4,$r5,$r6
crcc.w.d.w  $r4,$r5,$r6
break  0
break  0x7fff
dbcl   0
dbcl   0x7fff
alsl.d  $r4,$r5,$r6,1
alsl.d  $r4,$r5,$r6,4
slli.w  $r4,$r5,0
slli.w  $r4,$r5,1
slli.w  $r4,$r5,0x1f
slli.d  $r4,$r5,0
slli.d  $r4,$r5,1
slli.d  $r4,$r5,0x3f
srli.w  $r4,$r5,0
srli.w  $r4,$r5,1
srli.w  $r4,$r5,0x1f
srli.d  $r4,$r5,0
srli.d  $r4,$r5,1
srli.d  $r4,$r5,0x3f
srai.w  $r4,$r5,0
srai.w  $r4,$r5,1
srai.w  $r4,$r5,0x1f
srai.d  $r4,$r5,0
srai.d  $r4,$r5,1
srai.d  $r4,$r5,0x3f
rotri.w  $r4,$r5,0
rotri.w  $r4,$r5,1
rotri.w  $r4,$r5,0x1f
rotri.d  $r4,$r5,0
rotri.d  $r4,$r5,1
rotri.d  $r4,$r5,0x3f
bstrins.w  $r4,$r5,0,0
bstrins.w  $r4,$r5,2,1
bstrins.w  $r4,$r5,31,0
bstrpick.w  $r4,$r5,0,0
bstrpick.w  $r4,$r5,2,1
bstrpick.w  $r4,$r5,31,0
bstrins.d  $r4,$r5,0,0
bstrins.d  $r4,$r5,31,1
bstrins.d  $r4,$r5,32,0
bstrins.d  $r4,$r5,63,0
bstrpick.d  $r4,$r5,0,0
bstrpick.d  $r4,$r5,31,1
bstrpick.d  $r4,$r5,32,0
bstrpick.d  $r4,$r5,63,0
ll.w  $r4,$r5,0
ll.w  $r4,$r5,0x3ffc
sc.w  $r4,$r5,0
sc.w  $r4,$r5,0x3ffc
ll.d  $r4,$r5,0
ll.d  $r4,$r5,0x3ffc
sc.d  $r4,$r5,0
sc.d  $r4,$r5,0x3ffc
ldptr.w  $r4,$r5,0
ldptr.w  $r4,$r5,0x3ffc
stptr.w  $r4,$r5,0
stptr.w  $r4,$r5,0x3ffc
ldptr.d  $r4,$r5,0
ldptr.d  $r4,$r5,0x3ffc
stptr.d  $r4,$r5,0
stptr.d  $r4,$r5,0x3ffc
ld.b  $r4,$r5,0
ld.b  $r4,$r5,0x7ff
ld.b  $r4,$r5,-0x7ff
ld.h  $r4,$r5,0
ld.h  $r4,$r5,0x7ff
ld.h  $r4,$r5,-0x7ff
ld.w  $r4,$r5,0
ld.w  $r4,$r5,0x7ff
ld.w  $r4,$r5,-0x7ff
ld.d  $r4,$r5,0
ld.d  $r4,$r5,0x7ff
ld.d  $r4,$r5,-0x7ff
st.b  $r4,$r5,0
st.b  $r4,$r5,0x7ff
st.b  $r4,$r5,-0x7ff
st.h  $r4,$r5,0
st.h  $r4,$r5,0x7ff
st.h  $r4,$r5,-0x7ff
st.w  $r4,$r5,0
st.w  $r4,$r5,0x7ff
st.w  $r4,$r5,-0x7ff
st.d  $r4,$r5,0
st.d  $r4,$r5,0x7ff
st.d  $r4,$r5,-0x7ff
ld.bu  $r4,$r5,0
ld.bu  $r4,$r5,0x7ff
ld.bu  $r4,$r5,-0x7ff
ld.hu  $r4,$r5,0
ld.hu  $r4,$r5,0x7ff
ld.hu  $r4,$r5,-0x7ff
ld.wu  $r4,$r5,0
ld.wu  $r4,$r5,0x7ff
ld.wu  $r4,$r5,-0x7ff
preld  0,$r5,0
preld  31,$r5,0x7ff
preld  31,$r5,-0x7ff
ldx.b  $r4,$r5,$r6
ldx.h  $r4,$r5,$r6
ldx.w  $r4,$r5,$r6
ldx.d  $r4,$r5,$r6
stx.b  $r4,$r5,$r6
stx.h  $r4,$r5,$r6
stx.w  $r4,$r5,$r6
stx.d  $r4,$r5,$r6
ldx.bu  $r4,$r5,$r6
ldx.hu  $r4,$r5,$r6
ldx.wu  $r4,$r5,$r6
preldx  0,$r5,$r6
preldx  31,$r5,$r6
dbar  0
dbar  0x7fff
ibar  0
ibar  0x7fff
amswap.w  $r4,$r5,$r6,0
amswap.w  $r4,$r6,$r5
amswap.d  $r4,$r5,$r6,0
amswap.d  $r4,$r6,$r5
amadd.w  $r4,$r5,$r6,0
amadd.w  $r4,$r6,$r5
amadd.d  $r4,$r5,$r6,0
amadd.d  $r4,$r6,$r5
amand.w  $r4,$r5,$r6,0
amand.w  $r4,$r6,$r5
amand.d  $r4,$r5,$r6,0
amand.d  $r4,$r6,$r5
amor.w  $r4,$r5,$r6,0
amor.w  $r4,$r6,$r5
amor.d  $r4,$r5,$r6,0
amor.d  $r4,$r6,$r5
amxor.w  $r4,$r5,$r6,0
amxor.w  $r4,$r6,$r5
amxor.d  $r4,$r5,$r6,0
amxor.d  $r4,$r6,$r5
ammax.w  $r4,$r5,$r6,0
ammax.w  $r4,$r6,$r5
ammax.d  $r4,$r5,$r6,0
ammax.d  $r4,$r6,$r5
ammin.w  $r4,$r5,$r6,0
ammin.w  $r4,$r6,$r5
ammin.d  $r4,$r5,$r6,0
ammin.d  $r4,$r6,$r5
ammax.wu  $r4,$r5,$r6,0
ammax.wu  $r4,$r6,$r5
ammax.du  $r4,$r5,$r6,0
ammax.du  $r4,$r6,$r5
ammin.wu  $r4,$r5,$r6,0
ammin.wu  $r4,$r6,$r5
ammin.du  $r4,$r5,$r6,0
ammin.du  $r4,$r6,$r5
amswap_db.w  $r4,$r5,$r6,0
amswap_db.w  $r4,$r6,$r5
amswap_db.d  $r4,$r5,$r6,0
amswap_db.d  $r4,$r6,$r5
amadd_db.w  $r4,$r5,$r6,0
amadd_db.w  $r4,$r6,$r5
amadd_db.d  $r4,$r5,$r6,0
amadd_db.d  $r4,$r6,$r5
amand_db.w  $r4,$r5,$r6,0
amand_db.w  $r4,$r6,$r5
amand_db.d  $r4,$r5,$r6,0
amand_db.d  $r4,$r6,$r5
amor_db.w  $r4,$r5,$r6,0
amor_db.w  $r4,$r6,$r5
amor_db.d  $r4,$r5,$r6,0
amor_db.d  $r4,$r6,$r5
amxor_db.w  $r4,$r5,$r6,0
amxor_db.w  $r4,$r6,$r5
amxor_db.d  $r4,$r5,$r6,0
amxor_db.d  $r4,$r6,$r5
ammax_db.w  $r4,$r5,$r6,0
ammax_db.w  $r4,$r6,$r5
ammax_db.d  $r4,$r5,$r6,0
ammax_db.d  $r4,$r6,$r5
ammin_db.w  $r4,$r5,$r6,0
ammin_db.w  $r4,$r6,$r5
ammin_db.d  $r4,$r5,$r6,0
ammin_db.d  $r4,$r6,$r5
ammax_db.wu  $r4,$r5,$r6,0
ammax_db.wu  $r4,$r6,$r5
ammax_db.du  $r4,$r5,$r6,0
ammax_db.du  $r4,$r6,$r5
ammin_db.wu  $r4,$r5,$r6,0
ammin_db.wu  $r4,$r6,$r5
ammin_db.du  $r4,$r5,$r6,0
ammin_db.du  $r4,$r6,$r5
ldgt.b  $r4,$r5,$r6
ldgt.h  $r4,$r5,$r6
ldgt.w  $r4,$r5,$r6
ldgt.d  $r4,$r5,$r6
ldle.b  $r4,$r5,$r6
ldle.h  $r4,$r5,$r6
ldle.w  $r4,$r5,$r6
ldle.d  $r4,$r5,$r6
stgt.b  $r4,$r5,$r6
stgt.h  $r4,$r5,$r6
stgt.w  $r4,$r5,$r6
stgt.d  $r4,$r5,$r6
stle.b  $r4,$r5,$r6
stle.h  $r4,$r5,$r6
stle.w  $r4,$r5,$r6
stle.d  $r4,$r5,$r6
sc.q  $r4,$r5,$r6,0
sc.q  $r4,$r5,$r6
llacq.w  $r4,$r5,0
llacq.w  $r4,$r5
screl.w  $r4,$r5,0
screl.w  $r4,$r5
llacq.d  $r4,$r5,0
llacq.d  $r4,$r5
screl.d  $r4,$r5,0
screl.d  $r4,$r5
amcas.b  $r4,$r5,$r6,0
amcas.b  $r4,$r6,$r5
amcas.h  $r4,$r5,$r6,0
amcas.h  $r4,$r6,$r5
amcas.w  $r4,$r5,$r6,0
amcas.w  $r4,$r6,$r5
amcas.d  $r4,$r5,$r6,0
amcas.d  $r4,$r6,$r5
amcas_db.b  $r4,$r5,$r6,0
amcas_db.b  $r4,$r6,$r5
amcas_db.h  $r4,$r5,$r6,0
amcas_db.h  $r4,$r6,$r5
amcas_db.w  $r4,$r5,$r6,0
amcas_db.w  $r4,$r6,$r5
amcas_db.d  $r4,$r5,$r6,0
amcas_db.d  $r4,$r6,$r5
amswap.b  $r4,$r5,$r6,0
amswap.b  $r4,$r6,$r5
amswap.h  $r4,$r5,$r6,0
amswap.h  $r4,$r6,$r5
amadd.b  $r4,$r5,$r6,0
amadd.b  $r4,$r6,$r5
amadd.h  $r4,$r5,$r6,0
amadd.h  $r4,$r6,$r5
amswap_db.b  $r4,$r5,$r6,0
amswap_db.b  $r4,$r6,$r5
amswap_db.h  $r4,$r5,$r6,0
amswap_db.h  $r4,$r6,$r5
amadd_db.b  $r4,$r5,$r6,0
amadd_db.b  $r4,$r6,$r5
amadd_db.h  $r4,$r5,$r6,0
amadd_db.h  $r4,$r6,$r5

# jmp_op
.L1:
nop
beqz  $r4,.L1
bnez  $r4,.L1
b  .L1
bl  .L1
beq $r4,$r5,.L1
bne $r4,$r5,.L1
blt $r4,$r5,.L1
bgt $r4,$r5,.L1
bge $r4,$r5,.L1
ble $r4,$r5,.L1
bltu  $r4,$r5,.L1
bgtu  $r4,$r5,.L1
bgeu  $r4,$r5,.L1
bleu  $r4,$r5,.L1
jirl  $zero,$r4,0
